package pro.cherish.knowledgeutil.collection;

import cn.hutool.core.collection.CollectionUtil;
import pro.cherish.knowledgeutil.bean.BeanUtilExt;
import pro.cherish.knowledgeutil.str.StringUtilExt;

import java.util.*;

/**
 * @author 创建人：cherish
 * @version 版本号：V1.0
 * <p>
 * ***************************修订记录************************************
 * 2019-11-01 cherish 创建该类功能。
 * **********************************************************************
 * </p>
 * @ClassName 类名：CollectionUtilExt
 * @Description 功能说明：
 * <p>
 * TODO
 * </p>
 * **********************************************************************
 * @date 创建日期： 2019-11-01 cherish
 */
public class CollectionUtilExt extends CollectionUtil {

    /**
     * 删除部分属性值相同的集合属性
     *
     * @param list
     * @param params
     * @param <T>
     */
    public static <T> void removeRepeat(Collection<T> list, String... params) {
        Iterator<T> iter = list.iterator();
        //hashSet保证唯一值组合
        Set<String> hashSet = new HashSet<String>();
        List<T> newList = new ArrayList<>();
        while (iter.hasNext()) {
            T item = iter.next();
            String[] values = BeanUtilExt.getFieldValues(item, params);
            if (hashSet.add(StringUtilExt.join("", values))) {
                newList.add(item);
            }
        }
        list.clear();
        list.addAll(newList);
    }
}
